In data communication, data communication coding (encoding/decoding) is common. For example, PC expansion card interface (PCIe) and serialized hard disk access (SATA) technologies use a byte-oriented DC-balanced run length 8 B/10 B coding is used (see U.S. Pat. No. 4,486,739; see also U.S. Pat. Nos. 5,663,724 and 6,617,984 for 16 B/20 B). This coding is standardized by Joint Electron Device Engineering Council (JEDEC) community. This conventional coding technique has two properties: guaranteeing the run length to be 5 or less; and providing DC-balanced output.
Regarding the first property of 8 B/10 B, the maximum run length property may be important to minimize bit error resulted from analog PHY which helps detect changes of data on a serial line and attempts to find an optimal probing position to minimize bit error. However, if the serial data is less changed than expected, PHY will have less information to decide the probing position in result and thus, results in the increase of the probability of bit error. Further, the maximum allowed distance can be defined in terms of run length, and the number of repeating symbol, etc. Regarding the second property, the DC-balanced output may be important if a serial link is implemented in an AC-coupling. Most of high speed serial line technologies are based on differential wires and data is sensed out by measuring the difference between two wires. To increase compatibility, merely the signal changes pass to the destination with blocking DC component. This technique is called AC-coupling. Although it has a few benefits on the implementation side, but it has an input restriction: the number of 0's and the number of 1's are to be balanced within a certain time period. When the code meets this requirement, it is referred to as DC-balanced. The 8 B/10 B coding provides such good property; however it significantly adds to latency. For example, each byte can be encoded using the 8 B/10 B code, but each coding should refer previous result to meet the DC-balancing requirement, so the calculation is cascaded. The high latency of the 8 B/10 B coding technique results in low memory performance and thus, it is not desirable in many cases, particular in case of mobile devices. When designing mobile devices, memory performance is considered an essential factor.
However, Serial Port Memory Technology (SPMT) is different from conventional memory technologies in that it uses high speed serial link technology in memory area. Using SPMT, reducing latency is essential, while DC balancing is not necessitated. It is, therefore, desired to have a data communication coding system that provides low latency coding without any memory resource complications, resulting in improved memory performance.